using B.S.NewMedical.ErrorCode;
using MediatR;
using System;

namespace B.S.NewMedical.Api.Write.Application.Command.Department
{
    /// <summary>
    /// 添加科室命令
    /// 用于创建新的科室信息，包含科室的基本信息和挂号费
    /// </summary>
    public class AddDepartmentsCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// 科室名称
        /// 必填字段，不能为空或空白字符
        /// </summary>
        public string DepartmentName { get; set; }

        /// <summary>
        /// 科室类型
        /// 标识科室的服务类型，如：门诊、住院等
        /// </summary>
        public string Type { get; set; }

        /// <summary>
        /// 父级ID
        /// 用于构建科室层级结构，0表示顶级科室
        /// </summary>
        public int ParentId { get; set; }

        /// <summary>
        /// 科室地址
        /// 必填字段，记录科室的具体位置信息
        /// </summary>
        public string DepartmentAddr { get; set; }

        /// <summary>
        /// 挂号费
        /// 科室的挂号费用，用于费用计算和显示
        /// 不能为负数
        /// </summary>
        public decimal RegistrationFee { get; set; }

        /// <summary>
        /// 是否支持急诊服务
        /// 标识科室是否提供急诊服务
        /// </summary>
        public bool IsEmergencyService { get; set; }

        /// <summary>
        /// 科室上线状态
        /// 控制科室是否在系统中可见和可预约
        /// </summary>
        public bool IsOnline { get; set; }

        /// <summary>
        /// 备注
        /// 科室的额外说明信息
        /// </summary>
        public string Remark { get; set; }
    }
} 